KILLEDRuntime Complexity (innermost) proof of /tmp/tmpe99y4p/MYNAT_complete_noand_C.xml
The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, INF).0 CpxTRS↳1 RenamingProof (⇔, 0 ms)↳2 CpxRelTRS↳3 TypeInferenceProof (BOTH BOUNDS(ID, ID), 0 ms)↳4 typed CpxTrs↳5 OrderProof (LOWER BOUND(ID), 0 ms)↳6 typed CpxTrs↳7 RewriteLemmaProof (LOWER BOUND(ID), 824 ms)↳8 BEST↳9 typed CpxTrs↳10 NoRewriteLemmaProof (LOWER BOUND(ID), 0 ms)↳11 typed CpxTrs↳12 RewriteLemmaProof (LOWER BOUND(ID), 385 ms)↳13 BEST↳14 typed CpxTrs↳15 NoRewriteLemmaProof (LOWER BOUND(ID), 0 ms)↳16 typed CpxTrs↳17 RewriteLemmaProof (LOWER BOUND(ID), 269 ms)↳18 BEST↳19 typed CpxTrs↳20 RewriteLemmaProof (LOWER BOUND(ID), 249 ms)↳21 BEST↳22 typed CpxTrs↳23 RewriteLemmaProof (LOWER BOUND(ID), 198 ms)↳24 BEST↳25 typed CpxTrs↳26 RewriteLemmaProof (LOWER BOUND(ID), 177 ms)↳27 BEST↳28 typed CpxTrs↳29 RewriteLemmaProof (LOWER BOUND(ID), 139 ms)↳30 BEST↳31 typed CpxTrs↳32 RewriteLemmaProof (LOWER BOUND(ID), 124 ms)↳33 BEST↳34 typed CpxTrs↳35 RewriteLemmaProof (LOWER BOUND(ID), 122 ms)↳36 BEST↳37 typed CpxTrs↳38 RewriteLemmaProof (LOWER BOUND(ID), 62 ms)↳39 BEST↳40 typed CpxTrs↳41 RewriteLemmaProof (LOWER BOUND(ID), 66 ms)↳42 BEST↳43 typed CpxTrs↳44 RewriteLemmaProof (LOWER BOUND(ID), 4 ms)↳45 BEST↳46 typed CpxTrs↳47 RewriteLemmaProof (LOWER BOUND(ID), 199 ms)↳48 BEST↳49 typed CpxTrs↳50 RewriteLemmaProof (LOWER BOUND(ID), 93 ms)↳51 BEST↳52 typed CpxTrs↳53 RewriteLemmaProof (LOWER BOUND(ID), 105 ms)↳54 BEST↳55 typed CpxTrs↳56 RewriteLemmaProof (LOWER BOUND(ID), 110 ms)↳57 BEST↳58 typed CpxTrs↳59 RewriteLemmaProof (LOWER BOUND(ID), 70 ms)↳60 BEST↳61 typed CpxTrs↳62 RewriteLemmaProof (LOWER BOUND(ID), 81 ms)↳63 BEST↳64 typed CpxTrs↳65 RewriteLemmaProof (LOWER BOUND(ID), 75 ms)↳66 BEST↳67 typed CpxTrs↳68 RewriteLemmaProof (LOWER BOUND(ID), 58 ms)↳69 BEST↳70 typed CpxTrs↳71 RewriteLemmaProof (LOWER BOUND(ID), 104 ms)↳72 BEST↳73 typed CpxTrs↳74 RewriteLemmaProof (LOWER BOUND(ID), 103 ms)↳75 BEST↳76 typed CpxTrs↳77 RewriteLemmaProof (LOWER BOUND(ID), 100 ms)↳78 BEST↳79 typed CpxTrs↳80 RewriteLemmaProof (LOWER BOUND(ID), 11 ms)↳81 BEST↳82 typed CpxTrs↳83 RewriteLemmaProof (LOWER BOUND(ID), 23 ms)↳84 BEST↳85 typed CpxTrs↳86 RewriteLemmaProof (LOWER BOUND(ID), 121 ms)↳87 BEST↳88 typed CpxTrs↳89 RewriteLemmaProof (LOWER BOUND(ID), 110 ms)↳90 BEST↳91 typed CpxTrs↳92 RewriteLemmaProof (LOWER BOUND(ID), 163 ms)↳93 BEST↳94 typed CpxTrs↳95 RewriteLemmaProof (LOWER BOUND(ID), 142 ms)↳96 BEST↳97 typed CpxTrs↳98 RewriteLemmaProof (LOWER BOUND(ID), 96 ms)↳99 BEST↳100 typed CpxTrs↳101 RewriteLemmaProof (LOWER BOUND(ID), 96 ms)↳102 BEST↳103 typed CpxTrs↳104 RewriteLemmaProof (LOWER BOUND(ID), 128 ms)↳105 BEST↳106 typed CpxTrs↳107 RewriteLemmaProof (LOWER BOUND(ID), 173 ms)↳108 BEST↳109 typed CpxTrs↳110 RewriteLemmaProof (LOWER BOUND(ID), 57 ms)↳111 BEST↳112 typed CpxTrs↳113 RewriteLemmaProof (LOWER BOUND(ID), 205 ms)↳114 BEST↳115 typed CpxTrs↳116 typed CpxTrs↳117 typed CpxTrs↳118 typed CpxTrs↳119 typed CpxTrs↳120 typed CpxTrs↳121 typed CpxTrs↳122 typed CpxTrs↳123 typed CpxTrs↳124 typed CpxTrs↳125 typed CpxTrs↳126 typed CpxTrs↳127 typed CpxTrs↳128 typed CpxTrs↳129 typed CpxTrs↳130 typed CpxTrs↳131 typed CpxTrs↳132 typed CpxTrs↳133 typed CpxTrs↳134 typed CpxTrs↳135 typed CpxTrs↳136 typed CpxTrs↳137 typed CpxTrs↳138 typed CpxTrs↳139 typed CpxTrs↳140 typed CpxTrs↳141 typed CpxTrs↳142 typed CpxTrs↳143 typed CpxTrs↳144 typed CpxTrs↳145 typed CpxTrs↳146 typed CpxTrs↳147 typed CpxTrs↳148 typed CpxTrs↳149 typed CpxTrs↳150 typed CpxTrs(0) Obligation:
Runtime Complexity TRS:
The TRS R consists of the following rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0)
active(isNat(0)) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0)) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0)) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0) → ok(0)
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Rewrite Strategy: INNERMOST(1) RenamingProof (EQUIVALENT transformation)
Renamed function symbols to avoid clashes with predefined symbol.(2) Obligation:
Runtime Complexity Relative TRS:
The TRS R consists of the following rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
S is empty.
Rewrite Strategy: INNERMOST(3) TypeInferenceProof (BOTH BOUNDS(ID, ID) transformation)
Infered types.(4) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':ok(5) OrderProof (LOWER BOUND(ID) transformation)
Heuristically decided to analyse the following defined symbols:
active, U102, isNatKind, U103, isNat, U104, plus, x, U12, U13, U14, U15, U16, U22, U23, U32, U33, U34, U35, U36, U42, U62, U72, U82, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U102 < active
isNatKind < active
U103 < active
isNat < active
U104 < active
plus < active
x < active
U12 < active
U13 < active
U14 < active
U15 < active
U16 < active
U22 < active
U23 < active
U32 < active
U33 < active
U34 < active
U35 < active
U36 < active
U42 < active
U62 < active
U72 < active
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U102 < proper
isNatKind < proper
U103 < proper
isNat < proper
U104 < proper
plus < proper
x < proper
U12 < proper
U13 < proper
U14 < proper
U15 < proper
U16 < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U34 < proper
U35 < proper
U36 < proper
U42 < proper
U62 < proper
U72 < proper
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(6) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okGenerator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U102, active, isNatKind, U103, isNat, U104, plus, x, U12, U13, U14, U15, U16, U22, U23, U32, U33, U34, U35, U36, U42, U62, U72, U82, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U102 < active
isNatKind < active
U103 < active
isNat < active
U104 < active
plus < active
x < active
U12 < active
U13 < active
U14 < active
U15 < active
U16 < active
U22 < active
U23 < active
U32 < active
U33 < active
U34 < active
U35 < active
U36 < active
U42 < active
U62 < active
U72 < active
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U102 < proper
isNatKind < proper
U103 < proper
isNat < proper
U104 < proper
plus < proper
x < proper
U12 < proper
U13 < proper
U14 < proper
U15 < proper
U16 < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U34 < proper
U35 < proper
U36 < proper
U42 < proper
U62 < proper
U72 < proper
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(7) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)Induction Base:
U102(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))Induction Step:
U102(gen_tt:mark:0':ok3_0(+(1, +(n5_0, 1))), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) →RΩ(1)
mark(U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(8) Complex Obligation (BEST)
(9) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
isNatKind, active, U103, isNat, U104, plus, x, U12, U13, U14, U15, U16, U22, U23, U32, U33, U34, U35, U36, U42, U62, U72, U82, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
isNatKind < active
U103 < active
isNat < active
U104 < active
plus < active
x < active
U12 < active
U13 < active
U14 < active
U15 < active
U16 < active
U22 < active
U23 < active
U32 < active
U33 < active
U34 < active
U35 < active
U36 < active
U42 < active
U62 < active
U72 < active
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
isNatKind < proper
U103 < proper
isNat < proper
U104 < proper
plus < proper
x < proper
U12 < proper
U13 < proper
U14 < proper
U15 < proper
U16 < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U34 < proper
U35 < proper
U36 < proper
U42 < proper
U62 < proper
U72 < proper
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(10) NoRewriteLemmaProof (LOWER BOUND(ID) transformation)
Could not prove a rewrite lemma for the defined symbol isNatKind.(11) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U103, active, isNat, U104, plus, x, U12, U13, U14, U15, U16, U22, U23, U32, U33, U34, U35, U36, U42, U62, U72, U82, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U103 < active
isNat < active
U104 < active
plus < active
x < active
U12 < active
U13 < active
U14 < active
U15 < active
U16 < active
U22 < active
U23 < active
U32 < active
U33 < active
U34 < active
U35 < active
U36 < active
U42 < active
U62 < active
U72 < active
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U103 < proper
isNat < proper
U104 < proper
plus < proper
x < proper
U12 < proper
U13 < proper
U14 < proper
U15 < proper
U16 < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U34 < proper
U35 < proper
U36 < proper
U42 < proper
U62 < proper
U72 < proper
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(12) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)Induction Base:
U103(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))Induction Step:
U103(gen_tt:mark:0':ok3_0(+(1, +(n6789_0, 1))), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) →RΩ(1)
mark(U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(13) Complex Obligation (BEST)
(14) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
isNat, active, U104, plus, x, U12, U13, U14, U15, U16, U22, U23, U32, U33, U34, U35, U36, U42, U62, U72, U82, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
isNat < active
U104 < active
plus < active
x < active
U12 < active
U13 < active
U14 < active
U15 < active
U16 < active
U22 < active
U23 < active
U32 < active
U33 < active
U34 < active
U35 < active
U36 < active
U42 < active
U62 < active
U72 < active
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
isNat < proper
U104 < proper
plus < proper
x < proper
U12 < proper
U13 < proper
U14 < proper
U15 < proper
U16 < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U34 < proper
U35 < proper
U36 < proper
U42 < proper
U62 < proper
U72 < proper
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(15) NoRewriteLemmaProof (LOWER BOUND(ID) transformation)
Could not prove a rewrite lemma for the defined symbol isNat.(16) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U104, active, plus, x, U12, U13, U14, U15, U16, U22, U23, U32, U33, U34, U35, U36, U42, U62, U72, U82, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U104 < active
plus < active
x < active
U12 < active
U13 < active
U14 < active
U15 < active
U16 < active
U22 < active
U23 < active
U32 < active
U33 < active
U34 < active
U35 < active
U36 < active
U42 < active
U62 < active
U72 < active
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U104 < proper
plus < proper
x < proper
U12 < proper
U13 < proper
U14 < proper
U15 < proper
U16 < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U34 < proper
U35 < proper
U36 < proper
U42 < proper
U62 < proper
U72 < proper
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(17) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)Induction Base:
U104(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))Induction Step:
U104(gen_tt:mark:0':ok3_0(+(1, +(n14185_0, 1))), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) →RΩ(1)
mark(U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(18) Complex Obligation (BEST)
(19) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
plus, active, x, U12, U13, U14, U15, U16, U22, U23, U32, U33, U34, U35, U36, U42, U62, U72, U82, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
plus < active
x < active
U12 < active
U13 < active
U14 < active
U15 < active
U16 < active
U22 < active
U23 < active
U32 < active
U33 < active
U34 < active
U35 < active
U36 < active
U42 < active
U62 < active
U72 < active
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
plus < proper
x < proper
U12 < proper
U13 < proper
U14 < proper
U15 < proper
U16 < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U34 < proper
U35 < proper
U36 < proper
U42 < proper
U62 < proper
U72 < proper
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(20) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)Induction Base:
plus(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b))Induction Step:
plus(gen_tt:mark:0':ok3_0(+(1, +(n22168_0, 1))), gen_tt:mark:0':ok3_0(b)) →RΩ(1)
mark(plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(21) Complex Obligation (BEST)
(22) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
x, active, U12, U13, U14, U15, U16, U22, U23, U32, U33, U34, U35, U36, U42, U62, U72, U82, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
x < active
U12 < active
U13 < active
U14 < active
U15 < active
U16 < active
U22 < active
U23 < active
U32 < active
U33 < active
U34 < active
U35 < active
U36 < active
U42 < active
U62 < active
U72 < active
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
x < proper
U12 < proper
U13 < proper
U14 < proper
U15 < proper
U16 < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U34 < proper
U35 < proper
U36 < proper
U42 < proper
U62 < proper
U72 < proper
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(23) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)Induction Base:
x(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b))Induction Step:
x(gen_tt:mark:0':ok3_0(+(1, +(n27626_0, 1))), gen_tt:mark:0':ok3_0(b)) →RΩ(1)
mark(x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(24) Complex Obligation (BEST)
(25) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U12, active, U13, U14, U15, U16, U22, U23, U32, U33, U34, U35, U36, U42, U62, U72, U82, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U12 < active
U13 < active
U14 < active
U15 < active
U16 < active
U22 < active
U23 < active
U32 < active
U33 < active
U34 < active
U35 < active
U36 < active
U42 < active
U62 < active
U72 < active
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U12 < proper
U13 < proper
U14 < proper
U15 < proper
U16 < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U34 < proper
U35 < proper
U36 < proper
U42 < proper
U62 < proper
U72 < proper
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(26) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)Induction Base:
U12(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))Induction Step:
U12(gen_tt:mark:0':ok3_0(+(1, +(n33388_0, 1))), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) →RΩ(1)
mark(U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(27) Complex Obligation (BEST)
(28) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U13, active, U14, U15, U16, U22, U23, U32, U33, U34, U35, U36, U42, U62, U72, U82, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U13 < active
U14 < active
U15 < active
U16 < active
U22 < active
U23 < active
U32 < active
U33 < active
U34 < active
U35 < active
U36 < active
U42 < active
U62 < active
U72 < active
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U13 < proper
U14 < proper
U15 < proper
U16 < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U34 < proper
U35 < proper
U36 < proper
U42 < proper
U62 < proper
U72 < proper
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(29) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)Induction Base:
U13(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))Induction Step:
U13(gen_tt:mark:0':ok3_0(+(1, +(n42892_0, 1))), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) →RΩ(1)
mark(U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(30) Complex Obligation (BEST)
(31) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U14, active, U15, U16, U22, U23, U32, U33, U34, U35, U36, U42, U62, U72, U82, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U14 < active
U15 < active
U16 < active
U22 < active
U23 < active
U32 < active
U33 < active
U34 < active
U35 < active
U36 < active
U42 < active
U62 < active
U72 < active
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U14 < proper
U15 < proper
U16 < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U34 < proper
U35 < proper
U36 < proper
U42 < proper
U62 < proper
U72 < proper
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(32) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)Induction Base:
U14(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))Induction Step:
U14(gen_tt:mark:0':ok3_0(+(1, +(n53001_0, 1))), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) →RΩ(1)
mark(U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(33) Complex Obligation (BEST)
(34) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U15, active, U16, U22, U23, U32, U33, U34, U35, U36, U42, U62, U72, U82, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U15 < active
U16 < active
U22 < active
U23 < active
U32 < active
U33 < active
U34 < active
U35 < active
U36 < active
U42 < active
U62 < active
U72 < active
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U15 < proper
U16 < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U34 < proper
U35 < proper
U36 < proper
U42 < proper
U62 < proper
U72 < proper
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(35) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)Induction Base:
U15(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b))Induction Step:
U15(gen_tt:mark:0':ok3_0(+(1, +(n63715_0, 1))), gen_tt:mark:0':ok3_0(b)) →RΩ(1)
mark(U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(36) Complex Obligation (BEST)
(37) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U16, active, U22, U23, U32, U33, U34, U35, U36, U42, U62, U72, U82, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U16 < active
U22 < active
U23 < active
U32 < active
U33 < active
U34 < active
U35 < active
U36 < active
U42 < active
U62 < active
U72 < active
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U16 < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U34 < proper
U35 < proper
U36 < proper
U42 < proper
U62 < proper
U72 < proper
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(38) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)Induction Base:
U16(gen_tt:mark:0':ok3_0(+(1, 0)))Induction Step:
U16(gen_tt:mark:0':ok3_0(+(1, +(n70788_0, 1)))) →RΩ(1)
mark(U16(gen_tt:mark:0':ok3_0(+(1, n70788_0)))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(39) Complex Obligation (BEST)
(40) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U22, active, U23, U32, U33, U34, U35, U36, U42, U62, U72, U82, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U22 < active
U23 < active
U32 < active
U33 < active
U34 < active
U35 < active
U36 < active
U42 < active
U62 < active
U72 < active
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U34 < proper
U35 < proper
U36 < proper
U42 < proper
U62 < proper
U72 < proper
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(41) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)Induction Base:
U22(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b))Induction Step:
U22(gen_tt:mark:0':ok3_0(+(1, +(n73869_0, 1))), gen_tt:mark:0':ok3_0(b)) →RΩ(1)
mark(U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(42) Complex Obligation (BEST)
(43) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U23, active, U32, U33, U34, U35, U36, U42, U62, U72, U82, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U23 < active
U32 < active
U33 < active
U34 < active
U35 < active
U36 < active
U42 < active
U62 < active
U72 < active
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U23 < proper
U32 < proper
U33 < proper
U34 < proper
U35 < proper
U36 < proper
U42 < proper
U62 < proper
U72 < proper
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(44) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)Induction Base:
U23(gen_tt:mark:0':ok3_0(+(1, 0)))Induction Step:
U23(gen_tt:mark:0':ok3_0(+(1, +(n81452_0, 1)))) →RΩ(1)
mark(U23(gen_tt:mark:0':ok3_0(+(1, n81452_0)))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(45) Complex Obligation (BEST)
(46) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U32, active, U33, U34, U35, U36, U42, U62, U72, U82, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U32 < active
U33 < active
U34 < active
U35 < active
U36 < active
U42 < active
U62 < active
U72 < active
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U32 < proper
U33 < proper
U34 < proper
U35 < proper
U36 < proper
U42 < proper
U62 < proper
U72 < proper
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(47) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)Induction Base:
U32(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))Induction Step:
U32(gen_tt:mark:0':ok3_0(+(1, +(n84784_0, 1))), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) →RΩ(1)
mark(U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(48) Complex Obligation (BEST)
(49) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U33, active, U34, U35, U36, U42, U62, U72, U82, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U33 < active
U34 < active
U35 < active
U36 < active
U42 < active
U62 < active
U72 < active
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U33 < proper
U34 < proper
U35 < proper
U36 < proper
U42 < proper
U62 < proper
U72 < proper
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(50) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)Induction Base:
U33(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))Induction Step:
U33(gen_tt:mark:0':ok3_0(+(1, +(n97641_0, 1))), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) →RΩ(1)
mark(U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(51) Complex Obligation (BEST)
(52) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U34, active, U35, U36, U42, U62, U72, U82, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U34 < active
U35 < active
U36 < active
U42 < active
U62 < active
U72 < active
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U34 < proper
U35 < proper
U36 < proper
U42 < proper
U62 < proper
U72 < proper
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(53) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)Induction Base:
U34(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))Induction Step:
U34(gen_tt:mark:0':ok3_0(+(1, +(n111103_0, 1))), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) →RΩ(1)
mark(U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(54) Complex Obligation (BEST)
(55) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U35, active, U36, U42, U62, U72, U82, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U35 < active
U36 < active
U42 < active
U62 < active
U72 < active
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U35 < proper
U36 < proper
U42 < proper
U62 < proper
U72 < proper
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(56) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)Induction Base:
U35(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b))Induction Step:
U35(gen_tt:mark:0':ok3_0(+(1, +(n125170_0, 1))), gen_tt:mark:0':ok3_0(b)) →RΩ(1)
mark(U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(57) Complex Obligation (BEST)
(58) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U36, active, U42, U62, U72, U82, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U36 < active
U42 < active
U62 < active
U72 < active
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U36 < proper
U42 < proper
U62 < proper
U72 < proper
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(59) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)Induction Base:
U36(gen_tt:mark:0':ok3_0(+(1, 0)))Induction Step:
U36(gen_tt:mark:0':ok3_0(+(1, +(n134469_0, 1)))) →RΩ(1)
mark(U36(gen_tt:mark:0':ok3_0(+(1, n134469_0)))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(60) Complex Obligation (BEST)
(61) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U42, active, U62, U72, U82, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U42 < active
U62 < active
U72 < active
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U42 < proper
U62 < proper
U72 < proper
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(62) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)Induction Base:
U42(gen_tt:mark:0':ok3_0(+(1, 0)))Induction Step:
U42(gen_tt:mark:0':ok3_0(+(1, +(n138649_0, 1)))) →RΩ(1)
mark(U42(gen_tt:mark:0':ok3_0(+(1, n138649_0)))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(63) Complex Obligation (BEST)
(64) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U62, active, U72, U82, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U62 < active
U72 < active
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U62 < proper
U72 < proper
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(65) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)Induction Base:
U62(gen_tt:mark:0':ok3_0(+(1, 0)))Induction Step:
U62(gen_tt:mark:0':ok3_0(+(1, +(n142930_0, 1)))) →RΩ(1)
mark(U62(gen_tt:mark:0':ok3_0(+(1, n142930_0)))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(66) Complex Obligation (BEST)
(67) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U72, active, U82, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U72 < active
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U72 < proper
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(68) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)Induction Base:
U72(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b))Induction Step:
U72(gen_tt:mark:0':ok3_0(+(1, +(n147312_0, 1))), gen_tt:mark:0':ok3_0(b)) →RΩ(1)
mark(U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(69) Complex Obligation (BEST)
(70) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U82, active, U83, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U82 < active
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U82 < proper
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(71) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)Induction Base:
U82(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))Induction Step:
U82(gen_tt:mark:0':ok3_0(+(1, +(n157533_0, 1))), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) →RΩ(1)
mark(U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(72) Complex Obligation (BEST)
(73) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U83, active, U84, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U83 < active
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U83 < proper
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(74) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)Induction Base:
U83(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))Induction Step:
U83(gen_tt:mark:0':ok3_0(+(1, +(n174054_0, 1))), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) →RΩ(1)
mark(U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(75) Complex Obligation (BEST)
(76) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U84, active, s, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U84 < active
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U84 < proper
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(77) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)Induction Base:
U84(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))Induction Step:
U84(gen_tt:mark:0':ok3_0(+(1, +(n191180_0, 1))), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) →RΩ(1)
mark(U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(78) Complex Obligation (BEST)
(79) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
s, active, U92, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
s < active
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
s < proper
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(80) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)Induction Base:
s(gen_tt:mark:0':ok3_0(+(1, 0)))Induction Step:
s(gen_tt:mark:0':ok3_0(+(1, +(n208911_0, 1)))) →RΩ(1)
mark(s(gen_tt:mark:0':ok3_0(+(1, n208911_0)))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(81) Complex Obligation (BEST)
(82) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U92, active, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U92 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U92 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(83) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U92(gen_tt:mark:0':ok3_0(+(1, n214141_0))) → *4_0, rt ∈ Ω(n2141410)Induction Base:
U92(gen_tt:mark:0':ok3_0(+(1, 0)))Induction Step:
U92(gen_tt:mark:0':ok3_0(+(1, +(n214141_0, 1)))) →RΩ(1)
mark(U92(gen_tt:mark:0':ok3_0(+(1, n214141_0)))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(84) Complex Obligation (BEST)
(85) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)
U92(gen_tt:mark:0':ok3_0(+(1, n214141_0))) → *4_0, rt ∈ Ω(n2141410)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U11, active, U21, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(86) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U11(gen_tt:mark:0':ok3_0(+(1, n219472_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2194720)Induction Base:
U11(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))Induction Step:
U11(gen_tt:mark:0':ok3_0(+(1, +(n219472_0, 1))), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) →RΩ(1)
mark(U11(gen_tt:mark:0':ok3_0(+(1, n219472_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(87) Complex Obligation (BEST)
(88) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)
U92(gen_tt:mark:0':ok3_0(+(1, n214141_0))) → *4_0, rt ∈ Ω(n2141410)
U11(gen_tt:mark:0':ok3_0(+(1, n219472_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2194720)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U21, active, U31, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(89) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U21(gen_tt:mark:0':ok3_0(+(1, n238430_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2384300)Induction Base:
U21(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b))Induction Step:
U21(gen_tt:mark:0':ok3_0(+(1, +(n238430_0, 1))), gen_tt:mark:0':ok3_0(b)) →RΩ(1)
mark(U21(gen_tt:mark:0':ok3_0(+(1, n238430_0)), gen_tt:mark:0':ok3_0(b))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(90) Complex Obligation (BEST)
(91) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)
U92(gen_tt:mark:0':ok3_0(+(1, n214141_0))) → *4_0, rt ∈ Ω(n2141410)
U11(gen_tt:mark:0':ok3_0(+(1, n219472_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2194720)
U21(gen_tt:mark:0':ok3_0(+(1, n238430_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2384300)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U31, active, U41, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(92) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U31(gen_tt:mark:0':ok3_0(+(1, n250975_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2509750)Induction Base:
U31(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))Induction Step:
U31(gen_tt:mark:0':ok3_0(+(1, +(n250975_0, 1))), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) →RΩ(1)
mark(U31(gen_tt:mark:0':ok3_0(+(1, n250975_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(93) Complex Obligation (BEST)
(94) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)
U92(gen_tt:mark:0':ok3_0(+(1, n214141_0))) → *4_0, rt ∈ Ω(n2141410)
U11(gen_tt:mark:0':ok3_0(+(1, n219472_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2194720)
U21(gen_tt:mark:0':ok3_0(+(1, n238430_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2384300)
U31(gen_tt:mark:0':ok3_0(+(1, n250975_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2509750)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U41, active, U51, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(95) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U41(gen_tt:mark:0':ok3_0(+(1, n270996_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2709960)Induction Base:
U41(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b))Induction Step:
U41(gen_tt:mark:0':ok3_0(+(1, +(n270996_0, 1))), gen_tt:mark:0':ok3_0(b)) →RΩ(1)
mark(U41(gen_tt:mark:0':ok3_0(+(1, n270996_0)), gen_tt:mark:0':ok3_0(b))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(96) Complex Obligation (BEST)
(97) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)
U92(gen_tt:mark:0':ok3_0(+(1, n214141_0))) → *4_0, rt ∈ Ω(n2141410)
U11(gen_tt:mark:0':ok3_0(+(1, n219472_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2194720)
U21(gen_tt:mark:0':ok3_0(+(1, n238430_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2384300)
U31(gen_tt:mark:0':ok3_0(+(1, n250975_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2509750)
U41(gen_tt:mark:0':ok3_0(+(1, n270996_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2709960)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U51, active, U61, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(98) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U51(gen_tt:mark:0':ok3_0(+(1, n284247_0))) → *4_0, rt ∈ Ω(n2842470)Induction Base:
U51(gen_tt:mark:0':ok3_0(+(1, 0)))Induction Step:
U51(gen_tt:mark:0':ok3_0(+(1, +(n284247_0, 1)))) →RΩ(1)
mark(U51(gen_tt:mark:0':ok3_0(+(1, n284247_0)))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(99) Complex Obligation (BEST)
(100) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)
U92(gen_tt:mark:0':ok3_0(+(1, n214141_0))) → *4_0, rt ∈ Ω(n2141410)
U11(gen_tt:mark:0':ok3_0(+(1, n219472_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2194720)
U21(gen_tt:mark:0':ok3_0(+(1, n238430_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2384300)
U31(gen_tt:mark:0':ok3_0(+(1, n250975_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2509750)
U41(gen_tt:mark:0':ok3_0(+(1, n270996_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2709960)
U51(gen_tt:mark:0':ok3_0(+(1, n284247_0))) → *4_0, rt ∈ Ω(n2842470)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U61, active, U71, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(101) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U61(gen_tt:mark:0':ok3_0(+(1, n290377_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2903770)Induction Base:
U61(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b))Induction Step:
U61(gen_tt:mark:0':ok3_0(+(1, +(n290377_0, 1))), gen_tt:mark:0':ok3_0(b)) →RΩ(1)
mark(U61(gen_tt:mark:0':ok3_0(+(1, n290377_0)), gen_tt:mark:0':ok3_0(b))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(102) Complex Obligation (BEST)
(103) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)
U92(gen_tt:mark:0':ok3_0(+(1, n214141_0))) → *4_0, rt ∈ Ω(n2141410)
U11(gen_tt:mark:0':ok3_0(+(1, n219472_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2194720)
U21(gen_tt:mark:0':ok3_0(+(1, n238430_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2384300)
U31(gen_tt:mark:0':ok3_0(+(1, n250975_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2509750)
U41(gen_tt:mark:0':ok3_0(+(1, n270996_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2709960)
U51(gen_tt:mark:0':ok3_0(+(1, n284247_0))) → *4_0, rt ∈ Ω(n2842470)
U61(gen_tt:mark:0':ok3_0(+(1, n290377_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2903770)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U71, active, U81, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U71 < active
U81 < active
U91 < active
U101 < active
active < top
U71 < proper
U81 < proper
U91 < proper
U101 < proper
proper < top(104) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U71(gen_tt:mark:0':ok3_0(+(1, n304138_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n3041380)Induction Base:
U71(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b))Induction Step:
U71(gen_tt:mark:0':ok3_0(+(1, +(n304138_0, 1))), gen_tt:mark:0':ok3_0(b)) →RΩ(1)
mark(U71(gen_tt:mark:0':ok3_0(+(1, n304138_0)), gen_tt:mark:0':ok3_0(b))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(105) Complex Obligation (BEST)
(106) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)
U92(gen_tt:mark:0':ok3_0(+(1, n214141_0))) → *4_0, rt ∈ Ω(n2141410)
U11(gen_tt:mark:0':ok3_0(+(1, n219472_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2194720)
U21(gen_tt:mark:0':ok3_0(+(1, n238430_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2384300)
U31(gen_tt:mark:0':ok3_0(+(1, n250975_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2509750)
U41(gen_tt:mark:0':ok3_0(+(1, n270996_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2709960)
U51(gen_tt:mark:0':ok3_0(+(1, n284247_0))) → *4_0, rt ∈ Ω(n2842470)
U61(gen_tt:mark:0':ok3_0(+(1, n290377_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2903770)
U71(gen_tt:mark:0':ok3_0(+(1, n304138_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n3041380)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U81, active, U91, U101, proper, topThey will be analysed ascendingly in the following order:
U81 < active
U91 < active
U101 < active
active < top
U81 < proper
U91 < proper
U101 < proper
proper < top(107) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U81(gen_tt:mark:0':ok3_0(+(1, n318203_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n3182030)Induction Base:
U81(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))Induction Step:
U81(gen_tt:mark:0':ok3_0(+(1, +(n318203_0, 1))), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) →RΩ(1)
mark(U81(gen_tt:mark:0':ok3_0(+(1, n318203_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(108) Complex Obligation (BEST)
(109) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)
U92(gen_tt:mark:0':ok3_0(+(1, n214141_0))) → *4_0, rt ∈ Ω(n2141410)
U11(gen_tt:mark:0':ok3_0(+(1, n219472_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2194720)
U21(gen_tt:mark:0':ok3_0(+(1, n238430_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2384300)
U31(gen_tt:mark:0':ok3_0(+(1, n250975_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2509750)
U41(gen_tt:mark:0':ok3_0(+(1, n270996_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2709960)
U51(gen_tt:mark:0':ok3_0(+(1, n284247_0))) → *4_0, rt ∈ Ω(n2842470)
U61(gen_tt:mark:0':ok3_0(+(1, n290377_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2903770)
U71(gen_tt:mark:0':ok3_0(+(1, n304138_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n3041380)
U81(gen_tt:mark:0':ok3_0(+(1, n318203_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n3182030)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U91, active, U101, proper, topThey will be analysed ascendingly in the following order:
U91 < active
U101 < active
active < top
U91 < proper
U101 < proper
proper < top(110) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U91(gen_tt:mark:0':ok3_0(+(1, n340514_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n3405140)Induction Base:
U91(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b))Induction Step:
U91(gen_tt:mark:0':ok3_0(+(1, +(n340514_0, 1))), gen_tt:mark:0':ok3_0(b)) →RΩ(1)
mark(U91(gen_tt:mark:0':ok3_0(+(1, n340514_0)), gen_tt:mark:0':ok3_0(b))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(111) Complex Obligation (BEST)
(112) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)
U92(gen_tt:mark:0':ok3_0(+(1, n214141_0))) → *4_0, rt ∈ Ω(n2141410)
U11(gen_tt:mark:0':ok3_0(+(1, n219472_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2194720)
U21(gen_tt:mark:0':ok3_0(+(1, n238430_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2384300)
U31(gen_tt:mark:0':ok3_0(+(1, n250975_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2509750)
U41(gen_tt:mark:0':ok3_0(+(1, n270996_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2709960)
U51(gen_tt:mark:0':ok3_0(+(1, n284247_0))) → *4_0, rt ∈ Ω(n2842470)
U61(gen_tt:mark:0':ok3_0(+(1, n290377_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2903770)
U71(gen_tt:mark:0':ok3_0(+(1, n304138_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n3041380)
U81(gen_tt:mark:0':ok3_0(+(1, n318203_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n3182030)
U91(gen_tt:mark:0':ok3_0(+(1, n340514_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n3405140)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
U101, active, proper, topThey will be analysed ascendingly in the following order:
U101 < active
active < top
U101 < proper
proper < top(113) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U101(gen_tt:mark:0':ok3_0(+(1, n355285_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n3552850)Induction Base:
U101(gen_tt:mark:0':ok3_0(+(1, 0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))Induction Step:
U101(gen_tt:mark:0':ok3_0(+(1, +(n355285_0, 1))), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) →RΩ(1)
mark(U101(gen_tt:mark:0':ok3_0(+(1, n355285_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(114) Complex Obligation (BEST)
(115) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)
U92(gen_tt:mark:0':ok3_0(+(1, n214141_0))) → *4_0, rt ∈ Ω(n2141410)
U11(gen_tt:mark:0':ok3_0(+(1, n219472_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2194720)
U21(gen_tt:mark:0':ok3_0(+(1, n238430_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2384300)
U31(gen_tt:mark:0':ok3_0(+(1, n250975_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2509750)
U41(gen_tt:mark:0':ok3_0(+(1, n270996_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2709960)
U51(gen_tt:mark:0':ok3_0(+(1, n284247_0))) → *4_0, rt ∈ Ω(n2842470)
U61(gen_tt:mark:0':ok3_0(+(1, n290377_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2903770)
U71(gen_tt:mark:0':ok3_0(+(1, n304138_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n3041380)
U81(gen_tt:mark:0':ok3_0(+(1, n318203_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n3182030)
U91(gen_tt:mark:0':ok3_0(+(1, n340514_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n3405140)
U101(gen_tt:mark:0':ok3_0(+(1, n355285_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n3552850)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))The following defined symbols remain to be analysed:
active, proper, topThey will be analysed ascendingly in the following order:
active < top
proper < top(116) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)
U92(gen_tt:mark:0':ok3_0(+(1, n214141_0))) → *4_0, rt ∈ Ω(n2141410)
U11(gen_tt:mark:0':ok3_0(+(1, n219472_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2194720)
U21(gen_tt:mark:0':ok3_0(+(1, n238430_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2384300)
U31(gen_tt:mark:0':ok3_0(+(1, n250975_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2509750)
U41(gen_tt:mark:0':ok3_0(+(1, n270996_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2709960)
U51(gen_tt:mark:0':ok3_0(+(1, n284247_0))) → *4_0, rt ∈ Ω(n2842470)
U61(gen_tt:mark:0':ok3_0(+(1, n290377_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2903770)
U71(gen_tt:mark:0':ok3_0(+(1, n304138_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n3041380)
U81(gen_tt:mark:0':ok3_0(+(1, n318203_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n3182030)
U91(gen_tt:mark:0':ok3_0(+(1, n340514_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n3405140)
U101(gen_tt:mark:0':ok3_0(+(1, n355285_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n3552850)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(117) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)
U92(gen_tt:mark:0':ok3_0(+(1, n214141_0))) → *4_0, rt ∈ Ω(n2141410)
U11(gen_tt:mark:0':ok3_0(+(1, n219472_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2194720)
U21(gen_tt:mark:0':ok3_0(+(1, n238430_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2384300)
U31(gen_tt:mark:0':ok3_0(+(1, n250975_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2509750)
U41(gen_tt:mark:0':ok3_0(+(1, n270996_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2709960)
U51(gen_tt:mark:0':ok3_0(+(1, n284247_0))) → *4_0, rt ∈ Ω(n2842470)
U61(gen_tt:mark:0':ok3_0(+(1, n290377_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2903770)
U71(gen_tt:mark:0':ok3_0(+(1, n304138_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n3041380)
U81(gen_tt:mark:0':ok3_0(+(1, n318203_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n3182030)
U91(gen_tt:mark:0':ok3_0(+(1, n340514_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n3405140)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(118) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)
U92(gen_tt:mark:0':ok3_0(+(1, n214141_0))) → *4_0, rt ∈ Ω(n2141410)
U11(gen_tt:mark:0':ok3_0(+(1, n219472_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2194720)
U21(gen_tt:mark:0':ok3_0(+(1, n238430_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2384300)
U31(gen_tt:mark:0':ok3_0(+(1, n250975_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2509750)
U41(gen_tt:mark:0':ok3_0(+(1, n270996_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2709960)
U51(gen_tt:mark:0':ok3_0(+(1, n284247_0))) → *4_0, rt ∈ Ω(n2842470)
U61(gen_tt:mark:0':ok3_0(+(1, n290377_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2903770)
U71(gen_tt:mark:0':ok3_0(+(1, n304138_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n3041380)
U81(gen_tt:mark:0':ok3_0(+(1, n318203_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n3182030)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(119) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)
U92(gen_tt:mark:0':ok3_0(+(1, n214141_0))) → *4_0, rt ∈ Ω(n2141410)
U11(gen_tt:mark:0':ok3_0(+(1, n219472_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2194720)
U21(gen_tt:mark:0':ok3_0(+(1, n238430_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2384300)
U31(gen_tt:mark:0':ok3_0(+(1, n250975_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2509750)
U41(gen_tt:mark:0':ok3_0(+(1, n270996_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2709960)
U51(gen_tt:mark:0':ok3_0(+(1, n284247_0))) → *4_0, rt ∈ Ω(n2842470)
U61(gen_tt:mark:0':ok3_0(+(1, n290377_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2903770)
U71(gen_tt:mark:0':ok3_0(+(1, n304138_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n3041380)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(120) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)
U92(gen_tt:mark:0':ok3_0(+(1, n214141_0))) → *4_0, rt ∈ Ω(n2141410)
U11(gen_tt:mark:0':ok3_0(+(1, n219472_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2194720)
U21(gen_tt:mark:0':ok3_0(+(1, n238430_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2384300)
U31(gen_tt:mark:0':ok3_0(+(1, n250975_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2509750)
U41(gen_tt:mark:0':ok3_0(+(1, n270996_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2709960)
U51(gen_tt:mark:0':ok3_0(+(1, n284247_0))) → *4_0, rt ∈ Ω(n2842470)
U61(gen_tt:mark:0':ok3_0(+(1, n290377_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2903770)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(121) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)
U92(gen_tt:mark:0':ok3_0(+(1, n214141_0))) → *4_0, rt ∈ Ω(n2141410)
U11(gen_tt:mark:0':ok3_0(+(1, n219472_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2194720)
U21(gen_tt:mark:0':ok3_0(+(1, n238430_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2384300)
U31(gen_tt:mark:0':ok3_0(+(1, n250975_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2509750)
U41(gen_tt:mark:0':ok3_0(+(1, n270996_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2709960)
U51(gen_tt:mark:0':ok3_0(+(1, n284247_0))) → *4_0, rt ∈ Ω(n2842470)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(122) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)
U92(gen_tt:mark:0':ok3_0(+(1, n214141_0))) → *4_0, rt ∈ Ω(n2141410)
U11(gen_tt:mark:0':ok3_0(+(1, n219472_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2194720)
U21(gen_tt:mark:0':ok3_0(+(1, n238430_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2384300)
U31(gen_tt:mark:0':ok3_0(+(1, n250975_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2509750)
U41(gen_tt:mark:0':ok3_0(+(1, n270996_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2709960)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(123) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)
U92(gen_tt:mark:0':ok3_0(+(1, n214141_0))) → *4_0, rt ∈ Ω(n2141410)
U11(gen_tt:mark:0':ok3_0(+(1, n219472_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2194720)
U21(gen_tt:mark:0':ok3_0(+(1, n238430_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2384300)
U31(gen_tt:mark:0':ok3_0(+(1, n250975_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2509750)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(124) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)
U92(gen_tt:mark:0':ok3_0(+(1, n214141_0))) → *4_0, rt ∈ Ω(n2141410)
U11(gen_tt:mark:0':ok3_0(+(1, n219472_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2194720)
U21(gen_tt:mark:0':ok3_0(+(1, n238430_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n2384300)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(125) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)
U92(gen_tt:mark:0':ok3_0(+(1, n214141_0))) → *4_0, rt ∈ Ω(n2141410)
U11(gen_tt:mark:0':ok3_0(+(1, n219472_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n2194720)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(126) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)
U92(gen_tt:mark:0':ok3_0(+(1, n214141_0))) → *4_0, rt ∈ Ω(n2141410)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(127) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)
s(gen_tt:mark:0':ok3_0(+(1, n208911_0))) → *4_0, rt ∈ Ω(n2089110)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(128) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)
U84(gen_tt:mark:0':ok3_0(+(1, n191180_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1911800)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(129) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)
U83(gen_tt:mark:0':ok3_0(+(1, n174054_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1740540)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(130) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)
U82(gen_tt:mark:0':ok3_0(+(1, n157533_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1575330)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(131) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)
U72(gen_tt:mark:0':ok3_0(+(1, n147312_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1473120)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(132) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)
U62(gen_tt:mark:0':ok3_0(+(1, n142930_0))) → *4_0, rt ∈ Ω(n1429300)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(133) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)
U42(gen_tt:mark:0':ok3_0(+(1, n138649_0))) → *4_0, rt ∈ Ω(n1386490)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(134) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)
U36(gen_tt:mark:0':ok3_0(+(1, n134469_0))) → *4_0, rt ∈ Ω(n1344690)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(135) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)
U35(gen_tt:mark:0':ok3_0(+(1, n125170_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n1251700)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(136) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)
U34(gen_tt:mark:0':ok3_0(+(1, n111103_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n1111030)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(137) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)
U33(gen_tt:mark:0':ok3_0(+(1, n97641_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n976410)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(138) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)
U32(gen_tt:mark:0':ok3_0(+(1, n84784_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n847840)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(139) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)
U23(gen_tt:mark:0':ok3_0(+(1, n81452_0))) → *4_0, rt ∈ Ω(n814520)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(140) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)
U22(gen_tt:mark:0':ok3_0(+(1, n73869_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n738690)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(141) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)
U16(gen_tt:mark:0':ok3_0(+(1, n70788_0))) → *4_0, rt ∈ Ω(n707880)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(142) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)
U15(gen_tt:mark:0':ok3_0(+(1, n63715_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n637150)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(143) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)
U14(gen_tt:mark:0':ok3_0(+(1, n53001_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n530010)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(144) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)
U13(gen_tt:mark:0':ok3_0(+(1, n42892_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n428920)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(145) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)
U12(gen_tt:mark:0':ok3_0(+(1, n33388_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n333880)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(146) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)
x(gen_tt:mark:0':ok3_0(+(1, n27626_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n276260)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(147) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)
plus(gen_tt:mark:0':ok3_0(+(1, n22168_0)), gen_tt:mark:0':ok3_0(b)) → *4_0, rt ∈ Ω(n221680)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(148) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)
U104(gen_tt:mark:0':ok3_0(+(1, n14185_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n141850)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(149) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)
U103(gen_tt:mark:0':ok3_0(+(1, n6789_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n67890)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.
(150) Obligation:
Innermost TRS:
Rules:
active(U101(tt, M, N)) → mark(U102(isNatKind(M), M, N))
active(U102(tt, M, N)) → mark(U103(isNat(N), M, N))
active(U103(tt, M, N)) → mark(U104(isNatKind(N), M, N))
active(U104(tt, M, N)) → mark(plus(x(N, M), N))
active(U11(tt, V1, V2)) → mark(U12(isNatKind(V1), V1, V2))
active(U12(tt, V1, V2)) → mark(U13(isNatKind(V2), V1, V2))
active(U13(tt, V1, V2)) → mark(U14(isNatKind(V2), V1, V2))
active(U14(tt, V1, V2)) → mark(U15(isNat(V1), V2))
active(U15(tt, V2)) → mark(U16(isNat(V2)))
active(U16(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V1, V2)) → mark(U32(isNatKind(V1), V1, V2))
active(U32(tt, V1, V2)) → mark(U33(isNatKind(V2), V1, V2))
active(U33(tt, V1, V2)) → mark(U34(isNatKind(V2), V1, V2))
active(U34(tt, V1, V2)) → mark(U35(isNat(V1), V2))
active(U35(tt, V2)) → mark(U36(isNat(V2)))
active(U36(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNatKind(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt, N)) → mark(U72(isNatKind(N), N))
active(U72(tt, N)) → mark(N)
active(U81(tt, M, N)) → mark(U82(isNatKind(M), M, N))
active(U82(tt, M, N)) → mark(U83(isNat(N), M, N))
active(U83(tt, M, N)) → mark(U84(isNatKind(N), M, N))
active(U84(tt, M, N)) → mark(s(plus(N, M)))
active(U91(tt, N)) → mark(U92(isNatKind(N)))
active(U92(tt)) → mark(0')
active(isNat(0')) → mark(tt)
active(isNat(plus(V1, V2))) → mark(U11(isNatKind(V1), V1, V2))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNat(x(V1, V2))) → mark(U31(isNatKind(V1), V1, V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(plus(V1, V2))) → mark(U41(isNatKind(V1), V2))
active(isNatKind(s(V1))) → mark(U51(isNatKind(V1)))
active(isNatKind(x(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(plus(N, 0')) → mark(U71(isNat(N), N))
active(plus(N, s(M))) → mark(U81(isNat(M), M, N))
active(x(N, 0')) → mark(U91(isNat(N), N))
active(x(N, s(M))) → mark(U101(isNat(M), M, N))
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(plus(X1, X2)) → plus(active(X1), X2)
active(plus(X1, X2)) → plus(X1, active(X2))
active(x(X1, X2)) → x(active(X1), X2)
active(x(X1, X2)) → x(X1, active(X2))
active(U11(X1, X2, X3)) → U11(active(X1), X2, X3)
active(U12(X1, X2, X3)) → U12(active(X1), X2, X3)
active(U13(X1, X2, X3)) → U13(active(X1), X2, X3)
active(U14(X1, X2, X3)) → U14(active(X1), X2, X3)
active(U15(X1, X2)) → U15(active(X1), X2)
active(U16(X)) → U16(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2, X3)) → U31(active(X1), X2, X3)
active(U32(X1, X2, X3)) → U32(active(X1), X2, X3)
active(U33(X1, X2, X3)) → U33(active(X1), X2, X3)
active(U34(X1, X2, X3)) → U34(active(X1), X2, X3)
active(U35(X1, X2)) → U35(active(X1), X2)
active(U36(X)) → U36(active(X))
active(U41(X1, X2)) → U41(active(X1), X2)
active(U42(X)) → U42(active(X))
active(U51(X)) → U51(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X1, X2)) → U71(active(X1), X2)
active(U72(X1, X2)) → U72(active(X1), X2)
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(s(X)) → s(active(X))
active(U91(X1, X2)) → U91(active(X1), X2)
active(U92(X)) → U92(active(X))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
plus(mark(X1), X2) → mark(plus(X1, X2))
plus(X1, mark(X2)) → mark(plus(X1, X2))
x(mark(X1), X2) → mark(x(X1, X2))
x(X1, mark(X2)) → mark(x(X1, X2))
U11(mark(X1), X2, X3) → mark(U11(X1, X2, X3))
U12(mark(X1), X2, X3) → mark(U12(X1, X2, X3))
U13(mark(X1), X2, X3) → mark(U13(X1, X2, X3))
U14(mark(X1), X2, X3) → mark(U14(X1, X2, X3))
U15(mark(X1), X2) → mark(U15(X1, X2))
U16(mark(X)) → mark(U16(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2, X3) → mark(U31(X1, X2, X3))
U32(mark(X1), X2, X3) → mark(U32(X1, X2, X3))
U33(mark(X1), X2, X3) → mark(U33(X1, X2, X3))
U34(mark(X1), X2, X3) → mark(U34(X1, X2, X3))
U35(mark(X1), X2) → mark(U35(X1, X2))
U36(mark(X)) → mark(U36(X))
U41(mark(X1), X2) → mark(U41(X1, X2))
U42(mark(X)) → mark(U42(X))
U51(mark(X)) → mark(U51(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X1), X2) → mark(U71(X1, X2))
U72(mark(X1), X2) → mark(U72(X1, X2))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
s(mark(X)) → mark(s(X))
U91(mark(X1), X2) → mark(U91(X1, X2))
U92(mark(X)) → mark(U92(X))
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNat(X)) → isNat(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(plus(X1, X2)) → plus(proper(X1), proper(X2))
proper(x(X1, X2)) → x(proper(X1), proper(X2))
proper(U11(X1, X2, X3)) → U11(proper(X1), proper(X2), proper(X3))
proper(U12(X1, X2, X3)) → U12(proper(X1), proper(X2), proper(X3))
proper(U13(X1, X2, X3)) → U13(proper(X1), proper(X2), proper(X3))
proper(U14(X1, X2, X3)) → U14(proper(X1), proper(X2), proper(X3))
proper(U15(X1, X2)) → U15(proper(X1), proper(X2))
proper(U16(X)) → U16(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2, X3)) → U31(proper(X1), proper(X2), proper(X3))
proper(U32(X1, X2, X3)) → U32(proper(X1), proper(X2), proper(X3))
proper(U33(X1, X2, X3)) → U33(proper(X1), proper(X2), proper(X3))
proper(U34(X1, X2, X3)) → U34(proper(X1), proper(X2), proper(X3))
proper(U35(X1, X2)) → U35(proper(X1), proper(X2))
proper(U36(X)) → U36(proper(X))
proper(U41(X1, X2)) → U41(proper(X1), proper(X2))
proper(U42(X)) → U42(proper(X))
proper(U51(X)) → U51(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X1, X2)) → U71(proper(X1), proper(X2))
proper(U72(X1, X2)) → U72(proper(X1), proper(X2))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(s(X)) → s(proper(X))
proper(U91(X1, X2)) → U91(proper(X1), proper(X2))
proper(U92(X)) → U92(proper(X))
proper(0') → ok(0')
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNat(ok(X)) → ok(isNat(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
plus(ok(X1), ok(X2)) → ok(plus(X1, X2))
x(ok(X1), ok(X2)) → ok(x(X1, X2))
U11(ok(X1), ok(X2), ok(X3)) → ok(U11(X1, X2, X3))
U12(ok(X1), ok(X2), ok(X3)) → ok(U12(X1, X2, X3))
U13(ok(X1), ok(X2), ok(X3)) → ok(U13(X1, X2, X3))
U14(ok(X1), ok(X2), ok(X3)) → ok(U14(X1, X2, X3))
U15(ok(X1), ok(X2)) → ok(U15(X1, X2))
U16(ok(X)) → ok(U16(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2), ok(X3)) → ok(U31(X1, X2, X3))
U32(ok(X1), ok(X2), ok(X3)) → ok(U32(X1, X2, X3))
U33(ok(X1), ok(X2), ok(X3)) → ok(U33(X1, X2, X3))
U34(ok(X1), ok(X2), ok(X3)) → ok(U34(X1, X2, X3))
U35(ok(X1), ok(X2)) → ok(U35(X1, X2))
U36(ok(X)) → ok(U36(X))
U41(ok(X1), ok(X2)) → ok(U41(X1, X2))
U42(ok(X)) → ok(U42(X))
U51(ok(X)) → ok(U51(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X1), ok(X2)) → ok(U71(X1, X2))
U72(ok(X1), ok(X2)) → ok(U72(X1, X2))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
s(ok(X)) → ok(s(X))
U91(ok(X1), ok(X2)) → ok(U91(X1, X2))
U92(ok(X)) → ok(U92(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: tt:mark:0':ok → tt:mark:0':ok
U101 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
tt :: tt:mark:0':ok
mark :: tt:mark:0':ok → tt:mark:0':ok
U102 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNatKind :: tt:mark:0':ok → tt:mark:0':ok
U103 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
isNat :: tt:mark:0':ok → tt:mark:0':ok
U104 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
plus :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
x :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U11 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U12 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U13 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U14 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U15 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U16 :: tt:mark:0':ok → tt:mark:0':ok
U21 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U22 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U23 :: tt:mark:0':ok → tt:mark:0':ok
U31 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U32 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U33 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U34 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U35 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U36 :: tt:mark:0':ok → tt:mark:0':ok
U41 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U42 :: tt:mark:0':ok → tt:mark:0':ok
U51 :: tt:mark:0':ok → tt:mark:0':ok
U61 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U62 :: tt:mark:0':ok → tt:mark:0':ok
U71 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U72 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U81 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U82 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U83 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U84 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
s :: tt:mark:0':ok → tt:mark:0':ok
U91 :: tt:mark:0':ok → tt:mark:0':ok → tt:mark:0':ok
U92 :: tt:mark:0':ok → tt:mark:0':ok
0' :: tt:mark:0':ok
proper :: tt:mark:0':ok → tt:mark:0':ok
ok :: tt:mark:0':ok → tt:mark:0':ok
top :: tt:mark:0':ok → top
hole_tt:mark:0':ok1_0 :: tt:mark:0':ok
hole_top2_0 :: top
gen_tt:mark:0':ok3_0 :: Nat → tt:mark:0':okLemmas:
U102(gen_tt:mark:0':ok3_0(+(1, n5_0)), gen_tt:mark:0':ok3_0(b), gen_tt:mark:0':ok3_0(c)) → *4_0, rt ∈ Ω(n50)Generator Equations:
gen_tt:mark:0':ok3_0(0) ⇔ tt
gen_tt:mark:0':ok3_0(+(x, 1)) ⇔ mark(gen_tt:mark:0':ok3_0(x))No more defined symbols left to analyse.